/*** 
 * @ ****************************************** 
 * @Editors: yangyifan yangyf@mw-robot.com
 * @Date: 2025-04-30 11:57:07
 * @LastEditTime: 2025-04-30 17:04:16
 * @Description: 
 * @ ****************************************** 
 */

#pragma once

#include "calibrator.h"
#include "config_instance.h"
#include "camera_intrinsic/intrinsic_calibration.h"
#include "camera_extrinsic/extrinsic_calibration.h"

class CalibratorFactory {
public:
    static std::unique_ptr<Calibrator> createCalibrator(const std::string& type, const IntrinsicConfig& config) {
        if (type == "intrinsic") {
            return std::make_unique<IntrinsicCalibrator>(config);
        }
        // if (type == "extrinsic") {
        //     return std::make_unique<ExtrinsicCalibrator>(config);
        // }
        return nullptr;
    }
};

